Reactive programming is a computational model wherein data flows through a pipeline of computational elements. A computation progresses by injection of one or more data objects into one end of the pipeline, and the response of each computational element to the injection of a result from a previous computational element. In reactive programming, pipelines may be treated as first class objects. Programming languages that natively support (ex novo) the reactive model are available, but for an existing language, such as Java, reactive programming elements and capabilities can be grafted onto the language itself or added through libraries. Some languages, such as Java, may be modified using both methods. While many reactive programming models run inside a single Java Virtual Machine (JVM), other models may function across multiple JVMs in a network. The JAX-RS standard provides an application program interface (API) for implementing REST applications (including reactive programming models) over a network.